<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3c.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
  <title>Migrating from Abator</title>
  <link type="text/css" rel="stylesheet" href="ibator.css"/>
</head>
<body>

<div class="menuNav">
  <p>
    <a href="index.html" target="_top">Show Menu</a>
    <a href="migratingFromAbator.html" target="_top">Hide Menu</a>
  </p>
</div>

<h1>Migrating from Abator</h1>
<p>This page details changes between
Ibator and Abator.  For most users, the changes should be simple.
If you extended any of Abator's classes to supply custom implementations
of code generators or the Java type resolver, you will need to rework
those custom classes.</p>
<p>The changes are listed in three categories: from required
configuration changes to less common changes.  Note that most changes
are described assuming you are using XML configuration for Ibator.  If you
are using Java based configuration, then the changes are still required
and should be easy to deduce from the description of the XML changes.</p>
<h2>Required for All Users</h2>
<ul>
  <li>The DTD has changed.  The new DOCTYPE should be
      <pre>

&lt;!DOCTYPE ibatorConfiguration
  PUBLIC &quot;-//Apache Software Foundation//DTD Apache iBATIS Ibator Configuration 1.0//EN&quot;
  &quot;http://ibatis.apache.org/dtd/ibator-config_1_0.dtd&quot;&gt;
    </pre>
  </li>
  <li>The <code>&lt;abatorConfiguration&gt;</code> element is renamed to
   <code>&lt;ibatorConfiguration&gt;</code></li>
  <li>The <code>&lt;abatorContext&gt;</code> element is renamed to
   <code>&lt;ibatorContext&gt;</code></li>
</ul>
<h2>Required for Many Users</h2>
<ul>
  <li><code>&lt;ibatorContext&gt;</code> elements now require an ID</li>
  <li>The <code>generatorSet</code> attribute is removed from the
    <code>&lt;ibatorContext&gt;</code> element and replaced with the
    <code>targetRuntime</code> attribute.  Valid values for this
    attribute are <code>Ibatis2Java2</code> or <code>Ibatis2Java5</code>.
    Ibator does not include the legacy generator set from
    Abator - so iBATIS version 2.2.0 or higher is required for
    the code generated by Ibator.</li>
  <li>The Ibator classloading strategy has changed substantially, and we now recommend that
      you manage the runtime classpath external to Ibator.  If you manage the classpath with
      configuration entries, you must make the
      following changes from Abator:
      <ul>
        <li>Class path entries are specified at the configuration file level
            with the <a href="configreference/classPathEntry.html">&lt;classPathEntry&gt;</a>
            element - now a child element of <code>&lt;ibatorConfiguration&gt;</code> only.</li>
        <li>A <code>&lt;classPathEntry&gt;</code> element is not longer allowed as a child
            of <code>&lt;jdbcConnection&gt;</code></li>
        <li>The "rootClasspath" property is no longer valid for the <code>&lt;javaModelGenerator&gt;</code>
            element.</li>
      </ul>
  </li>
</ul>
<h2>Rarely Required Changes</h2>
<ul>
  <li>The <code>type</code> attribute is removed from both the
    <code>&lt;javaModelGenerator&gt;</code> and
    <code>&lt;sqlMapGenerator&gt;</code> elements.  Ibator has an entirely
    different method of supplying custom code generators than Abator.
    See the <a href="reference/extending.html">Extending Ibator</a>
    page for full details.</li>
  <li>The <code>type</code> attribute on the
    <code>&lt;daoGenerator&gt;</code> element has a different meaning from the
    attribute in Abator.  The special values remain the same, the difference manifests
    if you used this attribute the specify a custom DAO generator for Abator.  With Ibator,
    the type specifies the type of a custom DAO template rather than an implementation of a
    custom DAO generator.  Again, no changes are required unless you used this attribute
    to specify a custom DAO generator in Abator.
    Ibator has an entirely
    different method of supplying custom code generators than Abator.
    See the <a href="reference/extending.html">Extending Ibator</a>
    page for full details.</li>
  <li>The <code>JavaTypeResolver</code> interface has changed and is
    simplified.  If you specified a custom implementation on the
    <code>&lt;javaTypeResolver&gt;</code> element, you must rework your implementation
    class.</li>
  <li>The <code>ProgressCallback</code> interface has changed significantly.  If you implemented
    this interface for some other execution environment, you will need to rework your implementation.</li>
</ul>
</body>
</html>